﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using System.Web.Http.Cors;
using Upeu.Matricula.Api.Models;
using Upeu.Matricula.Data.Business;
using Upeu.Matricula.Data.Entities;

namespace Upeu.Matricula.Api.Controllers
{
    [EnableCors(origins: "*", headers: "*", methods: "*")]
    public class CuentaTutorController : ApiController
    {
        // GET api/<controller>
        public IEnumerable<CuentaTutorModel> Get()
        {
            //return new string[] { "value1", "value2" };
            return CuentaTutorBusiness.GetListByFilter("").Select(
                t => new CuentaTutorModel
                {
                    IdCuentaTutor = t.IdCuentaTutor,
                    Estado = t.Estado,
                    FechaPago = t.FechaPago,
                    Cuenta_Id = t.Cuenta_Id,
                    Tutor_Id = t.Tutor_Id,

                    
                });
        }

        // GET api/<controller>/5
        public CuentaTutorModel Get(Guid id)
        {
            CuentaTutor t = CuentaTutorBusiness.GetById(id);
            return new CuentaTutorModel
            {
                IdCuentaTutor = t.IdCuentaTutor,
                Estado = t.Estado,
                FechaPago = t.FechaPago,
                Cuenta_Id = t.Cuenta_Id,
                Tutor_Id = t.Tutor_Id,
            };
        }

        // POST api/<controller>
        public CuentaTutorModel Post([FromBody]CuentaTutorModel model)
        {
            CuentaTutor t = CuentaTutorBusiness.Create(new CuentaTutor
            {
                IdCuentaTutor = model.IdCuentaTutor,
                Estado = model.Estado,
                FechaPago = model.FechaPago,
                Cuenta_Id= model.Cuenta_Id,
                Tutor_Id = model.Tutor_Id,
            });
            return new CuentaTutorModel
            {
                IdCuentaTutor = t.IdCuentaTutor,
                Estado = t.Estado,
                FechaPago = t.FechaPago,
                Cuenta_Id=t.Cuenta_Id,
                Tutor_Id=t.Tutor_Id,
                
            };
        }

        // PUT api/<controller>/5
        public CuentaTutorModel Put(Guid id, [FromBody]CuentaTutorModel model)
        {
            CuentaTutor t = CuentaTutorBusiness.Update(new CuentaTutor
            {
                IdCuentaTutor = model.IdCuentaTutor,
                Estado = model.Estado,
                FechaPago = model.FechaPago,
                Cuenta_Id = model.Cuenta_Id,
                Tutor_Id = model.Tutor_Id,

            });
            return new CuentaTutorModel
            {
                IdCuentaTutor = t.Cuenta_Id,
                Estado = t.Estado,
                FechaPago = t.FechaPago,
                Cuenta_Id = t.Cuenta_Id,
                Tutor_Id = t.Tutor_Id,

            };
        }

        // DELETE api/<controller>/5
        public void Delete(Guid id)
        {
            CuentaTutorBusiness.Delete(id);
        }
    }
}